在今天的學習內容中,我將會學習網路爬蟲的相關概念,其中的小章節包含:
- 什麼是爬蟲?在哪裡應用?
- 爬蟲是如何發送請求並獲取網頁數據的
- 爬蟲有法律與道德問題?!
以上就是今天要學習的小章節。而在下方,我會先行參考及研究網路上的文獻資料,
再以自己的想法去理解並做出新的陳述。那就讓我們開始今天的學習吧!
一、什麼是爬蟲?在哪裡應用?
要了解什麼是爬蟲,我們先用簡單一點的方式來說,它就是一種
「自動抓取」網站資料的過程。
假設你今天進到了一間超級大的圖書館,剛好說你今天想找一本有關
「運動-棒球規則」的書,
那這時候你就會需要一個超級厲害的圖書館管理員,可以幫你用超快、
超有效率的方式找到你要的書。
在上面的例子裡,超級大的圖書館就是「網站」、運動區就是指定的「網頁」、
運動區裡的書籍就是「構成網頁的原始碼」,而籃球就是你所指定的「明確資訊」。
再想像一下,如果你今天想要獲取某個電商網站上的打折商品,但好巧不巧的,
那個網站沒有設計一個功能,是讓你可以直接看有什麼商品是打折的,
而需要你一個一個的手動尋找,那豈不是費人費時又費力嗎?
不只要花費更多時間,就連效率可能都會大打折扣。
這就是為什麼我們需要爬蟲的原因: 因為懶,懶著去一步一步找尋想要的資料,
所以我們創造了「爬蟲」這個東西,讓我們可以用
更方便、更有效率的方式來完成任務。
那爬蟲可以用在那些地方呢?除了剛剛提到的電商網站,還有許多可以應用的網站,
以下舉幾個實際的例子參考:
上圖是在booking官網所呈現出的網頁畫面。
可以看到,它可以透過用戶給予的特定資訊,給予用戶想要的回饋。
二、爬蟲是如何發送請求並獲取網頁數據的
那在理解完爬蟲是什麼東西後,我們就可以更深入的探討它的運作原理。
在首先,我們要先很簡單的介紹一些名詞:
HTTP(超文本傳輸協定):
客戶端(使用者)和伺服器端(網站)之間請求和應答的標準
HTML(超文本標記語言):
一種用於建立網頁的標準標記語言
爬蟲的運作其實並不複雜,簡單來說,我們會先發送HTTP請求給我們的目標網站,
試圖獲取我們所要的內容。而目標網站在收到我們的請求後,就會發回一個回覆訊息,
我們稱為HTTP Response。
接著,就是對所回傳response的處理,如:使用BeautifulSoup。
最後,將我們所解析完的數據儲存到自己的資料庫中,並依需求進行處理分析。
再簡化一些來說,爬蟲其實就是幾個流程的結合:
發送請求 -> 獲取網頁數據 -> 解析數據 -> 儲存和分析數據
(詳細的完整內容將會在下一章解釋,此處只是陳述大概念)
三、爬蟲有法律與道德問題?!
爬蟲也有法律跟道德的問題?不就是在不同的網站中抓取資料而已嗎,
怎麼會有這個問題?這可能是很多人的疑問。
但事實上,爬蟲與法律其實是息息相關的,而在其中,最重要的莫過於「隱私權」。
舉個例子,若是你隨意抓取網站上的任意一張圖片,就有一定的可能觸發「版權法」
此外,若是你利用爬蟲來獲取別人的私人訊息,
如電話、住家地址,就可能會觸發會「數據保護法」,給自身帶來許多的法律問題。
所以說,在進行網頁爬蟲之前,我們最好先詳細閱讀過網站的使用條款,
並注意版權的問題,且不要隨意竊取別人的隱私資料,
以免給自己帶來不必要的麻煩。
小結:
在今天,我學習了爬蟲的相關概念,並嘗試用我自己的方式理解,
並用口語化的方式舉例。本日我只是對整個大概念做粗略的探討,
更詳細的部分會等到之後的章節再一併學習並呈現。
參考資料:
https://zh.wikipedia.org/zh-tw/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE
https://zh.wikipedia.org/zh-tw/HTML
https://webscrapingpro.tw/what-is-web-scraping/
https://pala.tw/what-is-web-crawler/